package com.ophiux.cs.domain.consultBase.repositories;

import com.ophiux.cs.domain.consultBase.model.entity.DeptSorts;
import com.ophiux.cs.domain.consultBase.model.valueobj.DeptSortsParentResult;
import com.ophiux.cs.domain.consultBase.model.valueobj.DeptSortsQueryObj;
import com.ophiux.cs.domain.consultBase.model.valueobj.DeptSortsResult;
import com.ophiux.utils.exception.OphiuxRepositoryException;

import java.util.List;

public interface IDeptSortsRepository {
	/**
	 * 新增分类
	 * @param deptSorts
	 * @throws OphiuxRepositoryException
	 */
	public void  createDeptSorts(DeptSorts deptSorts) throws OphiuxRepositoryException;

	/**
	 * 更新分类
	 * @param deptSorts
	 * @throws OphiuxRepositoryException
	 */
	public void updateDeptSorts(DeptSorts deptSorts) throws OphiuxRepositoryException ;

	/**
	 * 删除医院
	 * @param sortsId
	 * @throws OphiuxRepositoryException
	 */
	public void deleteDeptSorts(String sortsId) throws OphiuxRepositoryException ;

	/**
	 * 查询所有医院
	 * @return
	 * @throws OphiuxRepositoryException
	 */
	public List<DeptSorts> selectDeptSorts() throws OphiuxRepositoryException ;
	/**
	 * 根据科室ID查询
	 * @param SORT_ID
	 * @throws OphiuxRepositoryException
	 */
	public DeptSorts getDeptSortsByID(String SORT_ID) throws OphiuxRepositoryException ;

	/**
	 * 查询所有一级科室
	 * @param deptSorts
	 * @throws OphiuxRepositoryException
	 */
	public List<DeptSortsParentResult> getParentDeptSorts(DeptSortsQueryObj deptSorts) throws OphiuxRepositoryException ;
	/**
	 * 查询所有一级科室
	 * @param deptSorts
	 * @throws OphiuxRepositoryException
	 */
	public int getParentDeptSortsCount(DeptSortsQueryObj deptSorts) throws OphiuxRepositoryException ;
	/**
	 * 根据父级科室ID查询
	 * @param PARENT_DEPT_ID
	 * @throws OphiuxRepositoryException
	 */
	public List<DeptSortsResult> getDeptSortsByParentId(String PARENT_DEPT_ID) throws OphiuxRepositoryException ;

}
